'use strict'

define(['jquery', 'bootstrap','shiftform', 'validate', 'validate.en','uploader', 'plupload', 'qiniu'], function($) {
  
  return {
        
    init: function() {
    	this.initEdit();
    	this.editCover();
    	this.editQrcode();
    	this.initMonthliesEdit();
    },
    
    initEdit: function(){
        var that = this;
        
        $(document).on("shown.bs.modal","#info-edit", function(e) {
        	
            var $form = $(e.currentTarget).find("form");
            
            $form.bt_validate();
          
            $form.shiftform({
              beforeSubmit : function(el) {
                $('form').trigger("validate.ajax.submit");
                return $.bt_validate.result[$.bt_validate.form_id]
              }
            });
        })
             
    },
    
    editCover: function(){
        var that = this;
        
        $(document).on("shown.bs.modal","#cover-edit", function(e) {
        	
        	that.initUpload();
            var $form = $(e.currentTarget).find("form");
              
              $form.bt_validate();
              
              $form.shiftform({
                beforeSubmit : function(el) {
                  $('form').trigger("validate.ajax.submit");
                  return $.bt_validate.result[$.bt_validate.form_id]
                }
              });
        })
             
    },
    
    editQrcode: function(){
        var that = this;
        
        $(document).on("shown.bs.modal","#qrcode-edit", function(e) {
        	
        	that.initUpload();
            var $form = $(e.currentTarget).find("form");
              
              $form.bt_validate();
              
              $form.shiftform({
                beforeSubmit : function(el) {
                  $('form').trigger("validate.ajax.submit");
                  return $.bt_validate.result[$.bt_validate.form_id]
                }
              });
        })
             
    },
    
    initMonthliesEdit: function(){
        var that = this;
        
        $(document).on("shown.bs.modal","#monthlies-edit", function(e) {
        	
            var $form = $(e.currentTarget).find("form");
            
            $form.bt_validate();
          
            $form.shiftform({
              beforeSubmit : function(el) {
                  $(".monthly-name").each(function(index) {
                	  var name = $(this).children('input[name="monthlyName"]').val();
                      var id = $(this).children('input[name="monthlyId"]').val();
                      $(this).children('input[name="monthlies"]').val(id + '|' + name);
                   })
                
                $('form').trigger("validate.ajax.submit");
                return $.bt_validate.result[$.bt_validate.form_id]
              }
            });
        })
             
    },
    
    initUpload: function() {
    	var imgSrc = $(".upload-cover").find("img").attr("src");
        
        if(imgSrc == null || imgSrc == undefined) {
          $(".upload-cover").find("img").addClass("hide");
        }
        
        
        $(".upload-cover").hover(function(){
          $(".upload-cover .edit-btn").addClass("in");
        },function(){
          $(".upload-cover .edit-btn").removeClass("in");
        });
        
        $.ajax({
          
          url: window.__CTX__.cloudUptoken,
          // The name of the callback parameter, as specified by the YQL service
          jsonp: "callback",
          // Tell jQuery we're expecting JSONP
          dataType: "jsonp",
          // Work with the response
          success: function( response ) {
            var uploaderCover = Qiniu.uploader({
              runtimes: 'html5,flash,html4',
              browse_button: 'pickCover',
              uptoken: response.token,
              domain: 'http://upload.qiniu.com/',
              max_file_size: '10mb',
              max_retries: 3,
//              chunk_size: '6mb',
              save_key: true,
              auto_start: true,
              init: {
                'UploadProgress': function(up, file) {
                  $('#messageCover').removeClass("hide");
                  $(".edit-btn").addClass("hide").prop("disabled", true);
                  $('#messageCover').html("正在上传图片，请稍后");
                  $('#submitBtn').attr("disabled", "disabled");
                },
                'FileUploaded': function(up, file, info) {
                  var res = $.parseJSON(info);
                  var cover_box = '';
                  $('#coverPreview').attr("src", window.__CTX__.cloudProd + "/" + res.key + "-0.6");
                  $('#coverPreviewList').css("display", "block");
                  $('#cover').val(res.key);
                  $('#messageCover').html("加载图片完成");
                  setTimeout(function() {
                    $('#messageCover').addClass("hide");
                    $(".edit-btn").addClass("fade").removeClass("hide").prop("disabled", false).html("<span class='glyphicon glyphicon-repeat' aria-hidden='true'></span>&nbsp;&nbsp;重新上传");
                  }, 2000);
                  $('#submitBtn').removeAttr('disabled');
                },
                'Error': function(up, err, errTip) {
                  $('#messageCover').html("图片上传异常，请稍后重试");
                }
              }
            });
          }
        });
      }
    
   }
})
